6. 클라우드 컨테이너 서비스 (AWS)

범위

원서 6장은 주요 클라우드(AWS · Azure · GCP 등)의 컨테이너 서비스를 다루지만, 이 노트는 TBIT 가 파트너로 있는 AWS 만 정리함. 그래서 절 번호가 6.1.1 → 6.1.4, 6.4 → 6.9 처럼 건너뜀.

6.1. 클라우드의 컨테이너 지원 현황: 주요 클라우드의 다양한 컨테이너 서비스

6.1.1. AWS 의 컨테이너 서비스

6.1.4. 각 클라우드에서 제공하는 컨테이너 서비스 (AWS)

분류 AWS 서비스 한 줄 설명
기존(독자) 컨테이너 오케스트레이션 Amazon ECS AWS 가 만든 독자 오케스트레이션
쿠버네티스 컨테이너 오케스트레이션 Amazon EKS 관리형 쿠버네티스
서버리스 컨테이너 실행 환경 AWS Fargate 서버(클러스터) 관리 없이 컨테이너 실행
컨테이너 레지스트리 Amazon ECR 컨테이너 이미지 저장·배포
AWS 컨테이너 서비스 지도:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

  [Amazon ECR]  ← 컨테이너 이미지 저장소
       │ 이미지를 가져옴(pull)
       ▼
  ┌─ 오케스트레이션 (무엇을, 몇 개, 어떻게 운영할지) ─
  │   ├─ Amazon ECS : AWS 독자 방식
  │   └─ Amazon EKS : 쿠버네티스 방식
  │
  └─ 실행 위치 (컨테이너가 실제로 도는 곳) ─
      ├─ EC2        : 내가 고른 가상 서버 (클러스터 관리 필요)
      └─ Fargate    : 서버리스 (클러스터 관리 불필요)
용어 정리

  • ECS (Elastic Container Service): AWS 의 독자적인 컨테이너 오케스트레이션 서비스
  • EKS (Elastic Kubernetes Service): AWS 의 관리형 쿠버네티스 서비스
  • Fargate: 서버를 직접 관리하지 않고 컨테이너를 실행하는 서버리스 실행 환경
  • ECR (Elastic Container Registry): AWS 의 컨테이너 이미지 레지스트리

6.1.5. 어떤 클라우드 서비스를 사용해야 할까?


6.2. 아마존 ECS: AWS 의 컨테이너 오케스트레이션 서비스

6.2.1. 아마존 ECS 란

시작 유형: Fargate vs EC2

ECS 를 사용할 때는 시작 유형(Launch Type) 중 하나를 선택해야 함.

구분 Fargate EC2
클러스터 관리 필요 없음 필요함 (프로비저닝·스케일링 등)
시작 방법 컨테이너 이미지 + CPU·메모리만 지정 인스턴스를 준비한 뒤 그 위에 실행
세밀한 설정 제한적 노드의 네트워크 구성 등을 세밀하게 설정 가능
요금 컨테이너를 실행하지 않으면 요금 없음 컨테이너가 없어도 인스턴스가 켜져 있으면 요금 발생
시작 유형별 책임 범위:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

  [EC2 시작 유형]                    [Fargate 시작 유형]
  ┌ 사용자 ────────────┐            ┌ 사용자 ────────────┐
  │ 컨테이너 정의       │            │ 컨테이너 정의       │
  │ EC2 인스턴스 선택    │            │ CPU · 메모리 지정   │
  │ 클러스터 확장·패치   │            └────────────────────┘
  └────────────────────┘            ┌ AWS ───────────────┐
  ┌ AWS ───────────────┐            │ 서버 · OS · 클러스터 │
  │ 오케스트레이션 제어  │            │ 오케스트레이션 제어  │
  └────────────────────┘            └────────────────────┘
2026-10 갱신

책 이후 ECS 의 실행 선택지가 늘었음.

  • ECS Managed Instances (2025-09 출시): EC2 의 다양한 인스턴스 유형을 쓰면서도, 인스턴스 선택·프로비저닝·보안 패치(14일 주기) 를 AWS 가 대신 해 주는 중간 형태. EC2 요금 + 관리 요금.
  • ECS Anywhere (2021): 온프레미스 서버에서도 ECS 로 컨테이너를 실행·관리.
  • 요즘은 "시작 유형" 대신 용량 공급자(Capacity Provider) 로 Fargate / Fargate Spot / EC2 를 섞어 쓰는 방식이 일반적.

6.2.2. 아마존 ECS 의 작동 방식

쿠버네티스 vs 아마존 ECS 계층 비교:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

  쿠버네티스 (4계층)                 아마존 ECS (3계층)
  ─────────────────                  ─────────────────
  디플로이먼트  ─┐
                ├─ 같은 역할 ──→    서비스
  레플리카셋    ─┘                    │
     │                               │
  파드          ── 같은 역할 ──→    태스크 (컨테이너 최대 10개)
     │                               │
  컨테이너      ── 같은 역할 ──→    컨테이너
ECS 구성 요소 대응하는 쿠버네티스 역할
서비스 (Service) 디플로이먼트 + 레플리카셋 태스크 개수 유지, 롤링 업데이트, 헬스 체크
태스크 (Task) 파드 컨테이너 묶음. 같은 태스크의 컨테이너는 라이프 사이클 공유, localhost 로 서로 통신
서비스 정의 / 태스크 정의 매니페스트 사양을 JSON 으로 선언적으로 작성한 텍스트 파일
2026-10 갱신

  • "태스크당 컨테이너 최대 10개" 는 지금도 조정할 수 없는 고정 할당량임 (AWS 공식 할당량 표).
  • 태스크마다 ENI 를 붙이는 것은 awsvpc 네트워크 모드일 때임. Fargate 는 이 모드만 지원하고, EC2 는 bridge·host 모드도 선택 가능.

용어 정리

  • 서비스 (ECS Service): 지정한 수의 태스크를 유지하고 업데이트·헬스 체크를 담당하는 단위
  • 태스크 (Task): ECS 에서 함께 실행되는 컨테이너들의 묶음. 쿠버네티스의 파드에 해당
  • 태스크 정의 (Task Definition): 태스크의 컨테이너 이미지·CPU·메모리·포트 등을 JSON 으로 적은 설계도
  • ENI (Elastic Network Interface): AWS VPC 안의 가상 네트워크 카드

6.2.3. 아마존 ECS 의 장단점

구분 장점 단점
인프라 관리 인프라 관리·운영을 AWS 에 맡기고 애플리케이션 개발 같은 본질적 작업에 집중 AWS 가 인프라 권한을 가지므로 정보 보안 관리 요건에 따라 단점이 될 수 있음
AWS 연동 접근 관리(IAM), DNS(Route 53), 모니터링(CloudWatch) 등 다른 AWS 서비스와 연동이 쉬움 AWS 에 의존하므로 멀티 클라우드 배포가 어려움
2026-10 갱신

ECS Anywhere 로 온프레미스 서버에서도 ECS 태스크를 돌릴 수 있게 되었지만, 제어(컨트롤 플레인)는 여전히 AWS 에 있음. "다른 클라우드로 그대로 옮기기 어렵다" 는 원서의 평가는 지금도 유효함.

6.2.4. 쿠버네티스가 있다면 아마존 ECS 는 불필요할까?

2026-10 갱신

예전에는 ECS 에서 블루/그린 배포를 하려면 CodeDeploy 를 따로 연동해야 했음. 2025년 7월부터 ECS 자체에 블루/그린 배포가 내장되었음(배포 수명 주기 훅으로 테스트·승인·자동 롤백 가능). ECS 를 고르는 이유인 "AWS 안에서의 단순함" 이 더 커졌다고 볼 수 있음.


6.3. 아마존 EKS: AWS 의 쿠버네티스 서비스

6.3.1. 아마존 EKS 란

2026-10 갱신

EKS Auto Mode (2024-12 출시): 워커 노드의 생성·확장·패치와 로드 밸런서·스토리지 같은 필수 구성 요소까지 AWS 가 관리하는 방식. EC2 요금과 별도로 관리 요금이 붙음(초 단위 과금). "노드 관리까지 맡기고 싶다" 면 Fargate 외에 이 선택지도 있음.

6.3.2. 아마존 EKS 의 작동 방식

EKS 구성 요소 쿠버네티스 대응 누가 관리 실체
EKS 컨트롤 플레인 마스터 (컨트롤 플레인) AWS 가 관리·운영 AWS 관리 계정 안에서 동작
EKS 워커 노드 워커 사용자 (Auto Mode·Fargate 면 AWS) 아마존 EC2 인스턴스

6.3.3. 리전과 가용 영역

리전 · 가용 영역과 EKS 배치:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

  [리전: 서울 ap-northeast-2]
   │
   ├─ 가용 영역 A ── 컨트롤 플레인 일부 ── 워커 노드 (EC2)
   ├─ 가용 영역 B ── 컨트롤 플레인 일부 ── 워커 노드 (EC2)
   └─ 가용 영역 C ── 컨트롤 플레인 일부 ── 워커 노드 (EC2)

  가용 영역 A 장애 발생
   → B · C 의 컨트롤 플레인과 워커 노드가 계속 동작
   → 클러스터 중지 없음
2026-10 갱신

  • 컨트롤 플레인의 다중 AZ 배치는 사용자가 하지 않아도 AWS 가 자동으로 함. AWS 공식 문서 기준, 리전 안 3개 가용 영역에 API 서버 최소 2개와 etcd 3개를 나눠 두고, 장애가 나면 다른 AZ 에서 교체함.
  • 사용자가 신경 쓸 것은 워커 노드(노드 그룹)를 여러 AZ 의 서브넷에 나눠 두는 것임.
  • "마스터" 는 현재 공식 용어로 컨트롤 플레인(Control Plane) 이라고 부름.

용어 정리

  • 리전 (Region): AWS 데이터 센터의 지리적 단위
  • 가용 영역 (Availability Zone, AZ): 리전 안의 서로 독립된 데이터 센터 묶음. 전원·네트워크가 분리되어 장애가 번지지 않음
  • EKS 컨트롤 플레인: AWS 가 운영하는 쿠버네티스 마스터(API 서버, etcd 등)
  • EKS 워커 노드: 파드가 실제로 실행되는 EC2 인스턴스

6.3.4. 아마존 EKS 의 장단점

비교 Amazon ECS Amazon EKS
플랫폼 AWS 독자 쿠버네티스 (표준)
배우기 쉬움 (개념이 적음) 상대적으로 어려움
AWS 연동 매우 긴밀 긴밀 (애드온·컨트롤러로 연동)
이식성 (다른 클라우드·온프레미스) 낮음 높음 (설계에 따라 다름)
컨트롤 플레인 요금 없음 클러스터당 시간 요금 있음 (아래 갱신 참고)
2026-10 갱신 (EKS 요금)

  • 컨트롤 플레인: 클러스터당 시간당 0.10 USD (표준 지원, 버전 출시 후 약 14개월)
  • 표준 지원이 끝난 쿠버네티스 버전을 계속 쓰면 확장 지원 시간당 0.60 USD 로 6배가 됨 (기본값이 확장 지원으로 자동 전환).
  • 그래서 EKS 는 정기적인 버전 업그레이드 계획이 운영 비용과 직결됨. 워커 노드(EC2)·Fargate 요금은 별도.


6.4. AWS Fargate: AWS 의 서버리스 컨테이너 실행 환경

6.4.1. AWS Fargate 란

2026-10 갱신

  • Fargate 는 ECS 와 EKS 둘 다에서 쓸 수 있음(EKS 에서는 2019년부터 파드를 Fargate 로 실행 가능). 6.3.1 에서 원서가 소개한 "EKS 의 Fargate" 가 바로 이것임.
  • 요금은 vCPU·메모리 사용량 기준 초 단위(최소 1분) 과금.

6.4.2. AWS Lambda 와 차이점

비교 AWS Lambda AWS Fargate
실행 단위 함수 (소스 코드) 컨테이너
실행 시간 상한 15분 사실상 제한 없음 (장시간 실행 가능)
패키지 크기 상한 250MB (압축 해제 기준, zip 배포) 이미지 크기 제약 적음
강점 이벤트 중심 동작 (요청·파일 업로드·스케줄 등에 반응) 제약이 적음 (장시간·대용량·상시 실행)
적합한 경우 짧고 이벤트로 시작되는 작업 실행 시간이 길거나 크기가 큰 작업, 웹 서버처럼 계속 떠 있는 서비스
2026-10 갱신

  • Lambda 도 2020년 12월부터 컨테이너 이미지로 배포할 수 있음(이미지 최대 10GB). 그래서 "소스 코드냐 컨테이너 이미지냐" 로 둘을 나누는 원서의 기준은 지금은 맞지 않음.
  • 지금의 구분 기준은 실행 모델임: Lambda 는 요청이 올 때만 함수가 실행(최대 15분, 메모리 최대 10,240MB)되고, Fargate 는 컨테이너가 계속 떠서 서비스함.
  • 250MB 는 zip 배포 기준(압축 해제 후, 레이어 포함)의 한도이고, 직접 업로드는 zip 50MB 까지임.

용어 정리

  • 서버리스 (Serverless): 서버가 없다는 뜻이 아니라, 서버 관리를 사용자가 하지 않는 실행 방식
  • AWS Lambda: 이벤트가 발생할 때 코드를 실행하는 서버리스 함수 서비스 (FaaS)
  • FaaS (Function as a Service): 함수 단위로 코드를 실행하는 서비스 형태


6.9. 도커 엔터프라이즈: 중앙 집중식 관리를 통해 멀티 클라우드 실현

2026-10 갱신: 도커 엔터프라이즈는 지금 이 이름으로 존재하지 않음

  • 2019년 11월, 도커사가 도커 엔터프라이즈 사업을 Mirantis 에 매각함. 이후 제품명이 바뀜.
원서의 이름 현재 이름 (Mirantis)
Docker Engine - Enterprise Mirantis Container Runtime (MCR)
Universal Control Plane (UCP) Mirantis Kubernetes Engine (MKE)
Docker Trusted Registry (DTR) Mirantis Secure Registry (MSR)
  • MKE 4 (2024-11)는 k0s 기반의 쿠버네티스 중심으로 재구성됨. 스웜 사용자는 MKE 3 계열에서 계속 지원한다고 Mirantis 가 발표함.
  • 도커 데스크톱 엔터프라이즈는 사라졌고, 도커사(Docker Inc.)는 지금 Docker Desktop 과 Docker Hub 중심으로 사업을 함. 기업용은 Docker Business 구독임.
  • 아래 내용은 책이 쓰인 당시 기준의 설명으로 읽으면 됨.

6.9.1. 도커 엔터프라이즈란

설치 위치 제품
서버 도커 엔진 - Enterprise, Universal Control Plane, Docker Trusted Registry
개발 PC 도커 데스크톱 엔터프라이즈

6.9.2. 도커 엔터프라이즈에서 사용 가능한 도구

도구 역할 특징
Universal Control Plane (UCP) 컨테이너 오케스트레이션 도구 같은 클러스터에서 도커 스웜과 쿠버네티스가 공존. 웹 GUI 와 명령줄 모두 지원
Docker Trusted Registry (DTR) 컨테이너 이미지 레지스트리 온프레미스에 프라이빗 레지스트리 구축. 고가용성 (인프라 일부 장애에도 계속 운영)
Federated Application Management 애플리케이션 관리 기능 온프레미스·클라우드의 도커 엔터프라이즈 환경과 주요 클라우드의 관리형 쿠버네티스 클러스터를 중앙에서 관리 → 멀티 클라우드 구현
도커 엔터프라이즈의 멀티 클라우드 관리 (원서 기준):
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

          [Federated Application Management]
                     (중앙 관리)
                         │
       ┌─────────────────┼─────────────────┐
       ▼                 ▼                 ▼
  온프레미스          클라우드          주요 클라우드의
  도커 엔터프라이즈    도커 엔터프라이즈   관리형 쿠버네티스
  (UCP + DTR)        (UCP + DTR)       (예: Amazon EKS)
용어 정리

  • UCP (Universal Control Plane): 도커 스웜과 쿠버네티스를 함께 관리하던 도커 엔터프라이즈의 오케스트레이션 도구 (현 MKE)
  • DTR (Docker Trusted Registry): 온프레미스용 프라이빗 이미지 레지스트리 (현 MSR)
  • 멀티 클라우드 (Multi-cloud): 여러 클라우드 서비스를 함께 사용하는 구성


핵심 요약

6장. 클라우드 컨테이너 서비스 (AWS) 요약:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

[AWS 컨테이너 서비스 4종]
├─ ECS     : AWS 독자 오케스트레이션
├─ EKS     : 관리형 쿠버네티스
├─ Fargate : 서버리스 컨테이너 실행 환경 (ECS · EKS 모두 사용)
├─ ECR     : 컨테이너 이미지 레지스트리
└─ 선택 기준: 서비스 내용·가격 + 보안 인증 등 종합 판단, 멀티 클라우드도 검토

[Amazon ECS]
├─ 3계층: 서비스 > 태스크(컨테이너 최대 10개) > 컨테이너
├─ 서비스 = 디플로이먼트 + 레플리카셋 역할, 태스크 = 파드 역할
├─ 서비스·태스크 정의 = JSON 으로 선언 (매니페스트 역할)
├─ 실행 위치: Fargate(관리 불필요, 안 돌면 무료) / EC2(세밀한 설정, 켜져 있으면 과금)
├─ 장점: 인프라를 AWS 에 맡김, AWS 서비스 연동이 쉬움
└─ 단점: 보안 요건에 따라 부담, AWS 의존으로 멀티 클라우드 어려움

[Amazon EKS]
├─ 관리형 쿠버네티스: EKS 컨트롤 플레인(AWS 관리) + 워커 노드(EC2)
├─ 리전 > 가용 영역(독립) → 여러 AZ 에 두면 한 AZ 장애에도 계속 동작
├─ 컨트롤 플레인 다중 AZ 는 AWS 가 자동, 사용자는 워커 노드를 AZ 에 분산
├─ ECS 대비: 쿠버네티스 표준이라 이식성 높음 (단, 설계에 달림)
└─ 둘 다 알고 상황에 맞게 선택하는 것이 이상적

[AWS Fargate vs Lambda]
├─ Fargate: 컨테이너가 계속 떠서 서비스, 제약이 적음 (장시간·대용량)
└─ Lambda : 이벤트가 올 때만 실행, 최대 15분, 이벤트 중심 동작에 강점

[도커 엔터프라이즈 (원서 기준)]
├─ 유료 플랫폼: 인증된 도커 + 우선 지원 + 장기 지원(24개월)
├─ UCP: 스웜 + 쿠버네티스 공존 / DTR: 온프레미스 프라이빗 레지스트리
├─ Federated Application Management: 멀티 클라우드 중앙 관리
└─ 현재: 2019년 Mirantis 매각 → MCR · MKE · MSR 로 이름 변경

참고 자료

관련 자료:

함께 보면 좋은 노트:


네비게이션

이전 강 목록
◀ 5-2. 컨테이너 오케스트레이션 도구, 쿠버네티스 - 파트 2 목록으로